home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 June: Reference Library / Dev.CD Jun 99 RL Disk 1.toast / Technical Documentation / Macintosh Technotes and Q&As / technotes / tn / tn_1001.cw < prev    next >
Encoding:
Text File  |  1997-12-10  |  34.0 KB  |  261 lines  |  [TEXT/R*ch]

  1. —BOBO%0‰dHZHZHZ‹
  2. *ÿÿH)‡dbBB  f,
  3. ÿÿ)fltÿ-Zÿÿÿ Tom MaremaaxHHÚ(ÿáÿáùEG(üHHØ(d'`Δÿÿ*H0∫H1/ÀÔ‘)‡à)‡ )fl$Ô\)ÿ›&*L@c¯j )‡≥4°ÿÿÿÿÿÿÿÿ@[#≠DSETÌ p r$ú
  4. 6P)fl°*()fl@)fl€°m)ü$iG°m*(gU°m)ü@(j°m)ü*l#i°m)‡Δ
  5. ´°>#Œ#‚#„#9####+.#0E3k#Ã#
  6. µ# $0 p0 q+  # ‹# AA1AEAXAlA•EÄEKEIAEE´EäEEHEV"EûE ˛`!f!E#V#(A#iA#œA#flA$:V$JE$ùE$úEÀ,à,,à=,>,
  7. R,
  8. à],    àh,    i,
  9. ≠,
  10. ,Óµ-,.,
  11. ,
  12. Eàj, k,
  13. ñ,
  14. 
  15. ’,
  16. 
  17. â,
  18.  $,
  19.  =,
  20.  f,
  21.  q,Óµ ƒ,  ,
  22.  f,
  23.  Í,
  24.  ,
  25. ,
  26. ,!,
  27. 1,3,
  28. E,G,
  29. X,Z,
  30. l,n,
  31. •,
  32.   ,
  33.  à
  34. @, "A,
  35. $∏,
  36.  Ó,
  37. %,
  38.  >,
  39. %A,
  40.  à !,
  41. '",
  42. $ ,
  43. % ˝,
  44. % ˛,
  45. ( £,
  46. ) à,
  47. *!,Ó !,,!,
  48. $!Ö,
  49. %!Ù,
  50.  "Ö,
  51. %#,
  52.  #à #',
  53. '#(,#*,
  54. -#g,
  55. #i,#k,
  56. #œ,#¨,
  57. #fl,$,
  58. -$),
  59. $: à
  60. $I,
  61. '$J,
  62. $d)flHÍ)‡0æõ)üÔ
  63. Ûà)üπ»ã)fldıÊ)üèhfi)‡xF©)û4ï)úÔ!
  64. î)‡4
  65. T E C H N O T E : 
  66. On Power Macintosh
  67. Interrupt Management
  68. By Wayne Flansburg 
  69. Applelink: W.FLANSBURG
  70. Apple Developer Technical Support (DTS)
  71.  
  72.  
  73. The Note briefly addresses porting existing 68K interrupt code to the NuBus PowerPC. It then discusses the new interrupt management scheme developed for PCI PowerPC.
  74. This Note is written for driver writers developing drivers of type 'ndrv' for PCI Macintosh computers and for any developer whose code makes calls to the Device Manager as a client of these drivers.
  75.  
  76.  
  77.  
  78. About Power Macintosh Interrupt Management
  79. Both the 68K and PowerPC microprocessors can be run in two modes: user and supervisor. The Mac OS runs in supervisor mode on both 68K and PowerPC Macintoshes. On 68K Macintoshes, the Mac OS allows any code to access supervisor mode. AlÍl code, therefore, has access to the status register, which can be used to program interrupts. With the introduction of the PowerPC, the Mac OS enforced the lock between the PowerPC user and supervisor modes. As a result, the PowerPC status register is no longer available for working with interrupts. To compound the interrupt problem, the 68K microprocessor has seven levels of available interrupts* while the RISC- based PowerPC only has one interrupt level, requiring a different interrupt model.
  80. * Not all interrupt levels are used by the 68K Mac OS.
  81. Porting 68K Interrupt Code to PowerPC
  82. All code dealing with 68K interrupts (seven levels) is emulated on the PowerPC, since there is no transformation from seven levels to one. The mechanism for dealing with 68K code on PowerPC is the 68LC040 emulator**. Therefore, developers may choose not to port at all and can be assured that their 68K interrupt code will run on the PowerPC. 
  83. For those few who choose to port paõrts of 68K 'DRVR'driver to a native PowerPC code, 68K non-interrupt code can be ported, but the interrupt handling code must remain emulated because a native interrupt handler would not be able to access the PowerPC status register to block interrupts. If you were to use any PowerPC assembly language instructions dealing with that status register, you would cause a fatal supervisory exception. By leaving the interrupt handler as 68K code, that code could continue to ÒaccessÓ the 68K status register because the emulator provides these services to drivers. The native portions of these drivers will have to use UPPs to interface correctly with the 68K Device Manager. Even though the PowerPC code will have to go through a mixed mode switch for interrupt handling, the developer may choose to go this way because the bulk of the remaining code is PowerPC and could increase performance. This Note, however, does not address the details of using the Mixed Mode Manager.  
  84. See Inside Macintosh: PowerPC System Sàoftware for using 68K code with PowerPC code via the Mixed Mode Manager.
  85. ** For more details, see Inside Macintosh: PowerPC System Software, p. 1-6.
  86.  
  87. PCI-Based Power Macintosh Interrupt Management
  88. With the introduction of the 9500 Power Macintosh, Apple has replaced its NuBus I/O model with the PCI I/O model and defined a new interrupt management scheme. This scheme is explained in detail in Designing PCI Cards and Drivers for Power Macintosh Computers, Chapter 9, Driver Services Library (DSL). 
  89. In this new I/O model, there are multiple levels of executions, including application, secondary, and primary execution levels that replace the old method of using interrupts to protect data. The primary and secondary execution levels are specifically for drivers and cannot use Toolbox services. Note that not a single Toolbox Manager is available. The services supplied at these primary and secondary levels via the Driver Services Library (DSL) include interrupt services. Other services,ã which replace the need to turn off interrupts that protect your data, include:
  90. ¥    memory management
  91. ¥    timing services
  92. ¥    atomic operations
  93. ¥    queue operations
  94. ¥    string operations
  95. ¥    debugging support
  96. There are limitations placed on the execution context for some of these services. If youÕre an application developer, this means that some of these services ‹ including interrupts ‹ are off limits to your application. For the PCI driver writer, it means that these services, which exclude the Toolbox, are now your domain. 
  97. Again, there is no way to turn off the one and only interrupt on the PowerPC. If you are writing a driver, you may need to deal with a hardware-generated interrupts, assuming your device generates one. For example, a video driver may not generate one while a network driver most likely would. Also, there are new mechanisms and assumptions on how to deal with hardware generated interrupts.
  98. The following example is one type of transactions between an application and a 'ndrÊv'driver. There are other transactions at present and there will be more types defined with future releases of the Mac OS.
  99. An Example ‹ A Simple Read Transaction 
  100. Consider the following scenario. A PCI card in an expansion slot is capable of asynchronously reading data from an external source into the Macintosh main memory. This basic sample will describe this read transaction and what must be done to service the device generated interrupt. But there is an important caveat here. The driver in this example is a generic PCI driver of type 'ndrv', as defined in Designing PCI Cards and Drivers for Power Macintosh Computers .
  101. By choosing to write this kind of driver and following all of the guidelines in the above manual, you guarantee compatibility with future releases of the MacOS.
  102. When the driver is loaded into memory by the Mac OS, the driver installs its interrupt routines and data in the Interrupt Source Tree (IST). It does so by using the Driver Servicesfi Library (DSL) routine InstallInterruptFunctions. The routines are used to disable, enable, and service device interrupts. 
  103. At some point, code running at the task level makes a PBRead asynchronous call to the driver via the Device Manager using a data structure called an I/O Parameter Block (IOPB). Of special note here is that in the past, calls such as this one may have had private pointers contained in the parameter block that was passed to the driver. This will not work in future releases of the Mac OS because of the pending implementation of multiple address spaces.  Publicly-documented buffer pointers and IOPB structures will continue to be supported***.
  104. The Device Manager makes a call to DoDriverIO with a read selector. The driver does what is necessary to set up its device for an asynchronous read and returns to the Device Manager with no return error and no indication that the read has been completed. The driver has completed its first task. The Device Manager return©s to the caller. When the read has completed, the hardware generates an interrupt which is detected by the Mac OS. Using the interrupt structure which contains the address of the interrupt service routine (ISR) for the device, control is passed to the ISR. 
  105. The ISR is allowed to complete its function uninterrupted, which is why an ISR must make every effort to spend as little time as possible servicing its device at the primary interrupt level. The driver should then queue a secondary interrupt handler to do any remaining work to service the device and/or the data using the DSL function QueueSecondaryInterruptHandler. This ensures that interrupt latency for the system is kept to a minimum. 
  106. Returning Control to the Mac OS
  107. Having completed those tasks, the ISR returns control to the Mac OS.  Secondary interrupt handlers are run before control is returned to task level code but can still be preempted by other primary interrupt handlers. By using the secondary interrupt handler to complete non-device-related tasks belonging to the read transaction, the driver writer is not locking out other code and is behaving appropriately in a multitasking environment. The secondary interrupt handler finishes any remaining tasks if they exist and makes a call to IOCommandISComplete passing a completion status, in this case, Òread was successful.Ó The IOPB is updated by the Device Manager and control is passed back to the callerÕs I/O completion routine.
  108. And the point of this example? Interrupts are not available to applications, but there are ways for applications and interrupt handlers to exchange information.
  109. ***See Designing PCI Cards and Drivers for Power Macintosh Computers, Chapter 9, Memory Management Services, p.24î0.
  110. Summary
  111. The PowerPC interrupt is not available to an application. Until the next major release of the Mac OS, you can use the emulated 68K interrupt mechanism. Using the interrupt on the PowerPC is not  an option and would be catastrophic if attempted. Interrupts from expansion devices, however, are fully supported in PowerPC for both NuBus and PCI slots. For more information about how to manage expansion interrupts on the PowerPC with PCI, refer to Designing PCI Cards and Drivers for Power Macintosh Computers .
  112. Further Reference
  113. ¥    Designing PCI Cards and Drivers for Power Macintosh Computers.
  114. ¥    PowerPC 601 RISC microprocessor UserÕs Manual MPC601UM/AD.
  115. ¥    M68000 8-/16-/32-Bit microprocessors UserÕs Manual, Sixth Edition, M68000UM/AD Rev 5.
  116. ¥    Inside Macintosh: PowerPC System Software, Addison-Wesley
  117. Acknowledgments
  118. Special thanks to: Tom Maremaa. Thanks to Jano Banks, Brian Bechtel, Holly Knight, Jim Mensch, Martin Minow, Matthew Nelson, Guillermo Ortiz, Tom Saulpaugh, and Bob Wambaugh.
  119.  
  120. ZÿÿN°DSET≠ÿÿ.He /oÿÿÿÿÿÿ)û°°√Øfi ¨°ÿÿ6ÿÿ*ØfiDSET 
  121. ÿÿ.H/Imginÿÿÿÿÿÿ*›fim°ÿÿ√õ°ÿÿ}°ÿÿ˘
  122. °ÿÿ
  123.   Ÿ°ÿÿn√°ÿÿö°ÿÿ~˘°ÿÿ
  124. 
  125.  °ÿÿ ⁄ ¨°ÿÿ6ÿÿ*ØfiDSET≠ÿÿ.Hÿÿÿÿÿÿ)fl¬Øfi°ÿÿÿÿ*Øfi°`°`°`°`°    `DSETT?|@∑)‡¨)‡P*ä)fl8°)‡ä &"    à¶ }[ˇP[¥ΔWWl≤[¡‰
  126. ∫)ü∫
  127. Technote 1001          ///          Release 1.0       © 1995  Apple Computer, Inc.      ///              ///          Page  of  5 FNTMCUTSDSUM$ Tom MaremaaHDNISTYLP·ÿÿ@STYL)üô)û@)‡T)fl)‡t)ú‘)û˘)ûT¶¯ÿÿ¡
  128. ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
  129. ÿÿÿÿ√
  130. ÿÿÿÿ
  131. ÿÿÿÿ
  132. ÿÿÿÿÿÿÿÿÿÿ    ÿÿÿÿ        ÿÿÿÿÿÿ
  133.     ÿÿ(ÿÿÿÿ #    ÿÿ)ÿÿÿÿ +    ÿÿ*ÿÿÿÿ
  134. 0    ÿÿ+ÿÿÿÿ3    ÿÿ,ÿÿÿÿ A    ÿÿ-ÿÿ  E    ÿÿ)ÿÿI    ÿÿ,ÿÿÿÿ    V    ÿÿ.ÿÿ
  135. `    ÿÿ+ÿÿ f    ÿÿ*ÿÿÿÿÿÿ 
  136. ÿÿÿÿÿÿ# ÿÿÿÿÿÿ#
  137. ÿÿÿÿ# ÿÿÿÿÿÿ+ÿÿÿÿÿÿ0 $ÿÿÿÿÿÿ3ÿÿÿÿÿÿ#ÿÿÿÿÿÿ0$ÿÿÿÿ
  138. ÿÿAÿÿÿÿ
  139. ÿÿA ÿÿ  ÿÿE ÿÿ!"ÿÿIÿÿ "$ÿÿE ÿÿ#%ÿÿEÿÿÿÿ$'ÿÿV !ÿÿ%(ÿÿ` $ÿÿ&)ÿÿ`$ÿÿ%'*ÿÿ` $ÿÿ(,ÿÿfÿÿÿÿ)-ÿÿAÿÿÿÿ*!ÿÿÿÿ+.ÿÿÿÿ,/ÿÿ    ÿÿ-1ÿÿ
  140. ÿÿ.2ÿÿ ÿÿ/4ÿÿÿÿ ÿÿ05ÿÿÿÿ
  141. ÿÿ16ÿÿÿÿÿÿ%27‹ÿÿÿÿÿÿ38077ÿÿÿÿ49077ÿÿÿÿ5:077ÿÿÿÿ6;079ÿÿÿÿ7<079ÿÿÿÿ8=079    ÿÿÿÿ9>079
  142. ÿÿÿÿ:?079 ÿÿÿÿ;@079 ÿÿÿÿ<B078
  143. ÿÿÿÿ=C078ÿÿÿÿ>D07:ÿÿÿÿ?F07:ÿÿÿÿ%@G‹ÿÿÿÿÿÿAH0GGÿÿ4BJ0GGÿÿ5CK0GGÿÿÿÿDL0GJÿÿ7EM0GJÿÿ8FN0GJ    ÿÿ9GO0GJ
  144. ÿÿ:HP0GJ ÿÿ;IQ0GJ ÿÿÿÿJR0GHÿÿÿÿKS0GH ÿÿÿÿLT0GK!ÿÿ?MU0GKÿÿÿÿ%NW‹ÿÿÿÿÿÿOX0WW"ÿÿÿÿPY0WW#ÿÿÿÿQZ0WW#ÿÿÿÿR[0WY$ÿÿÿÿS\0WY%ÿÿÿÿT]0WY%    ÿÿÿÿU^0WY%
  145. ÿÿÿÿV_0WY% ÿÿÿÿWa0WY% ÿÿÿÿXb0WX&ÿÿÿÿYc0WX&ÿÿÿÿZd0WZ$ÿÿÿÿ[e0WZ%ÿÿÿÿ%\g‹ÿÿÿÿÿÿ]h0gg'ÿÿÿÿ^i0ggÿÿÿÿ_j0ggÿÿÿÿ`k0gi(    ÿÿÿÿal0giÿÿÿÿbm0gi     ÿÿÿÿcn0gi!    ÿÿÿÿdo0gi"    ÿÿÿÿep0gi#    ÿÿÿÿfq0gh)$
  146. ÿÿÿÿgr0gh)%
  147. ÿÿÿÿhs0gj&    ÿÿÿÿit0gj'ÿÿÿÿ%ju‹ÿÿÿÿ(ÿÿkv0uu*)ÿÿÿÿlw0uu*ÿÿÿÿmx0uu+ ÿÿÿÿny0uw,ÿÿÿÿoz0uw-ÿÿÿÿp{0uw.ÿÿÿÿq|0uw/ÿÿÿÿr}0uw0ÿÿÿÿs~0uw1ÿÿÿÿt0uv+6
  148. ÿÿÿÿu•0uv+7
  149. ÿÿÿÿv™0ux!4
  150. ÿÿÿÿw≠0ux5
  151. ÿÿÿÿx∞‹ÿÿÿÿ(ÿÿy≥0∞∞) ÿÿlz∑0∞∞*ÿÿÿÿ{∫0∞∞2ÿÿÿÿ|Ω0∞∑,ÿÿÿÿ}√0∞∑3ÿÿÿÿ~≈0∞∑8ÿÿÿÿ…0∞∑9ÿÿÿÿ•—0∞∑:ÿÿÿÿ™‘0∞≥,6
  152. ÿÿÿÿ≠Ÿ0∞∫<ÿÿÿÿ∞⁄‹ÿÿÿÿ;ÿÿ≥∂0⁄⁄-=ÿÿÿÿ∑Δ0⁄⁄>ÿÿÿÿ∫Œ0⁄Δ ÿÿÿÿΩ‚0⁄Δ!ÿÿÿÿ√„0⁄Δ"ÿÿÿÿ≈‰0⁄Δ#ÿÿÿÿ…0⁄∂.Aÿÿÿÿ—ˆ0⁄∂.Bÿÿÿÿ‘˜Øÿÿÿÿ    ÿÿŸ˘8˜˜ ÿÿÿÿ⁄˙8˜˜ ÿÿÿÿ∂˚8˜˜ÿÿÿÿΔ˝8˜˜ÿÿÿÿŒ˛8˜˜ÿÿÿÿ‚ˇ8˜˜ÿÿÿÿ„ı8˜˜ÿÿÿÿ‰ƒ8˜˜ÿÿÿÿ 8˜˜ÿÿÿÿˆ¡8˜˜ÿÿÿÿ˜¢8˜˜ÿÿÿÿ˘£8˜˜ÿÿÿÿ˙€Øÿÿÿÿ/ÿÿ˚¥8€€0ÿÿÿÿ˝œ8€€1 ÿÿÿÿ˛§8€€2"ÿÿÿÿˇ¨8€€3#ÿÿÿÿı©8€€3%ÿÿÿÿƒª8€€3&ÿÿÿÿ «8€€3/ÿÿÿÿ¡¬8€€30ÿÿÿÿ¢–8€€31ÿÿÿÿ£®8€€32ÿÿÿÿ €¯Øÿÿÿÿ3ÿÿ¥°8¯¯4ÿÿÿÿœ±8¯¯5ÿÿÿÿ§”8¯¯6ÿÿÿÿ¨“8¯¯7ÿÿÿÿ©´8¯¯8ÿÿÿÿªµ/+4ÿÿÿÿ«
  153. !Iÿÿª¬ /f4ÿÿ«– !Vÿÿÿÿ®
  154. 2V    ÿÿÿÿ¯ÿÿ
  155. 
  156. ÿÿ–°!3ÿÿÿÿ±ÿÿ#5ÿÿÿÿ”ÿÿ#6ÿÿÿÿ“ÿÿ7
  157. ÿÿÿÿ´    ÿÿ8ÿÿ´µ&ÿÿ8ÿÿÿÿ¶¶ÿÿ9ÿÿ¸˛ÿÿHASH‘
  158. $Ú àù,ô◊‘jôؑxÑÛÔ@ÑÛÔNà"ÔÎ0á´fiãã%8◊∞ãµÕá\êä*ëå.&
  159. 
  160. ® °2&
  161.     2ø¬Ø,"Ø, Ø,2#Ù ±Ù  ” b!A¯!A “A, ≈b
  162. ,¥Qœv§˝¨À©,ŸQ⁄v∂˝ΔÀŒÎ.(å‚
  163. „/‰/. Tyˆı˜Ã˘,8˚QI˝v4˛˝5ˇÀ5ıå5ƒ    
  164. 5     /5¡    T5¢    y5£
  165. Ø,P'
  166. Ø,t&Q,NBEFGHIM0>OfPgC<U=øJ K    0T    1U    2V    3WC™JtKu    (P
  167. GL    5Dy·Zy˝XÙ?YÙ    H[ù6ùCùBRù    $Qù    3S‡J]‡>3‡ Ekÿ>yOïA∑-b.c/d0eFh``/p0q1r2s0wJv&a.i
  168. "^
  169. #_
  170. $z
  171. %{√≈∫Ω*……”—ûH≠‡/o‡9‡:•‡1|‡7}‡8~‡Dnfl0≥'mà&$I& ›& !Y& );ø€);ø§);øË)*(ø¥A& µA
  172. 7¶L: Qf¸eg˙h“çm1h’ÑÚj–◊alq”º+r§él/r”◊a-t“◊Å€z«áoz¶ÕÄ2}Bod}©ÓÖ‘ı:ÿÿ
  173. CHAR)fl ÿÿÿÿ ÿÿ ÿÿÿú    ÿÿÿfl, ÿÿ, ÿÿÿû
  174. ÿÿ•ÿÿàÿÿÿÿ,ÿÿ àÿÿ ÿ÷,àÿÿÿÿ,ÿÿ    ÿÿ,
  175. ÿÿÿÿ,    ÿÿÿÿ,ÿÿ&ÿÿ,
  176. ÿÿ ÿóàÿÿÿéÿÿ"ÿ† ÿÿÿúÿÿ
  177. ÿò,Ó'ÿØ,
  178. ÿÿÿ÷ àÿÿÿÿ
  179. ÿÿ"
  180. (
  181. '
  182. ÿÿ%
  183. ÿÿ
  184. ÿÿ     
  185.     ÿÿ
  186.     ÿÿ
  187.     ÿÿ.    ÿÿ
  188.     ÿÿ
  189. #
  190. 
  191.     "/    ÿÿ*
  192. 2
  193. '/
  194. ÿÿ        *        
  195. ÿÿ-ÿÿ&    ÿÿ&ÿÿ  ÿÿ&
  196. /&    ÿÿ,Óÿÿ ÿ÷,
  197. àÿÿÿ÷,    à6 ÿÿ,àÿÿ ÿÿÿÿ"    àú'ÿÿHASH.021340E1≥",3:&;)D() *$    %    )+    *!     
  198. 8à     à
  199. è89.
  200. . .
  201. .. .
  202. .1.Ó4.à
  203. 5.à
  204. .à7RC?
  205. CELL)û‰!ÿÿÿÿÿ:ÿÿÿ"ÿÿÿÿü
  206. ÿÿÿÿø
  207. ÿÿøÿÿÿÿÿÿÿÿÿÿ    ÿÿü
  208. ÿÿü
  209. ÿÿø
  210. ÿÿø
  211. ÿÿü
  212. ÿÿÿÿü
  213. ÿÿü
  214. ÿÿøÿÿøøÿÿÿÿÿÿÿÿx≥
  215. ÿÿØ$ ÿÿx• ÿÿØ 
  216. ÿÿÿÿÿÿÿÿÿÿ    ÿÿø
  217. ÿÿø ÿÿ ÿÿ
  218. ÿÿÿÿøÿÿÿÿûÿÿøÿÿøÿÿÿÿÿÿÿÿ    ÿÿÿÿøÿÿÿ ÿÿÿ
  219. ÿÿü
  220. ÿÿü ÿÿøÿÿøÿÿø    ÿÿÿÿø ÿÿø
  221. ÿÿ@ÿÿÿÿø
  222. ÿÿÿÿÿÿø ÿÿ(Ó
  223. ÿÿ√s Δ@ÿÿHASHÿ    
  224.       
  225. $ %
  226. 67(xŸx∂Ø1Ø3øøø    ø
  227. ø
  228. )ü ü >     
  229. ! " #&'
  230. ./01
  231. 45;*2*èA…‘Bú=ú
  232. -ú,ú<ú3ú8ú9ú:‡    + Æÿÿ
  233. GRPH)‡‹àÿÿÿÿÿ:ÿÿÿBÿÿÎÿÿ
  234. ÿÿÎÿÿ
  235. ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿ|ÿÿHASH
  236.     Ò
  237. Î   "9l
  238. RULR)ú´ÿÿÿÿÿÿÿÿ‡@ÿÿ[ÿÿ $ÿÿÿ@ÿÿ $ÿÿ     $
  239. ÿÿÿÿÿJb•.0∫fi?œÜ0fiBlfiBlfi?”ÜÚfiBlfi?ÊÜî≠fiBl€ï›fiBl¨±üÜ5&Ü0‘fi?âÜ0fiBlfiÿÿÿÿÿÿÿJÿÿ$ÿÿHÿÿÿªB<ÿÿÿÿiÿ:B ÿÿlÿÿ    ÿbBÿÿΔÿÿ´ÿÿÿ˚'ÿÿÿÿáÿJb•.0∫fi?œÜ0fiBlfiBlfi?”ÜÚfiBlfi?ÊÜî≠fiBl€ï›fiBl¨±üÜ5&Ü0‘fi?âÜ0fiBlfiÿÿØÿÿüÿÿ ÿÿÿzBÿÿDÿÿ    hÿÿÿbÿôNN.0∫fi?œÜ0fiBlfiBlfi?”ÜÚfiBlfi?ÊÜî≠fiBl€ï›fiBl¨±üÜ5&Ü0‘fi?âÜ0fiBlfiÿÿ
  240. ‘ÿÿ °ÿÿÿÿ$ÿÿHÿÿÿjBÿÿlÿÿΔÿÿÿbBB ÿÿ´ÿÿØÿÿÿÿÿÿaÿJÿÿiÿªB<ÿÿiÿbBÿÿaÿ˚ÿÿyÿbBB ÿÿiÿzBÿÿíÿbÿôNN.0∫fi?œÜ0fiBlfiBlfi?”ÜÚfiBlfi?ÊÜî≠fiBl€ï›fiBl¨±üÜ5&Ü0‘fi?âÜ0fiBlfiÿÿiÿjBÿÿüÿÿ ÿÿDÿÿ    hÿÿÿÿ$ÿÿHÿÿlÿÿΔÿÿ´H4ÿÿHASHÿœî>
  241. )W>(ÿ3,40Q5v6˝7À80    ˛
  242. ‡
  243. *, Q v˝Àå
  244. /TyıÃ,Q v"˝#À%å&    
  245. /    /0    T1    y2
  246. 0 œC$
  247. C+®!.≤',(    Ô˚(öÔ˚-@ÿ@‡~·ÿÿLKUP    «¬–®¯°±”“´
  248.  *! "#µ$%&' ()+,
  249. -./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~•™≠∞≥∑∫Ω√≈…—‘Ÿ⁄∂ΔŒ‚„‰ˆ˜˘˙˚˝˛ˇıƒ ¡¢£€¥œ§¨©ª¶‰ÿÿ$NAMEDefault
  250. Default SSHeaderBodyFooterFootnoteFootnote Index! HeadingH2.H2.Code.CV/ Heading1.H11Italic2 HeadingH3.H34Bullet5    Checklist6Number7ClassicG Blue Gray 1W Blue Gray 2gColorfulu
  251. 3D Table 1∞
  252. 3D Table 2⁄
  253. Accounting˜Harvard€Legal¯Diamond -)DFNTM    HelveticaGeneva:H
  254. Letter Gothic    
  255.   
  256.  !"#$%&'()*+ÿÿPalatinoETBL@FNTM6CUTS6DSUM6%HDNI6QSTYL6[ETBLΩãÿfl‡üûúùø›ñòóôõö÷